/*-----------------------------------------------------------------------------
-通用开发平台:用于客户端操作控制
-作者：张金军
-所有人：张金军
-版权：版权所有，张金军，2005-2015，保留所有权利
-----------------------------------------------------------------------------*/

/*根据标志返回相应的数据集*/
function getDatasetByID(Dataset) 
{
	
	if (Yacon.isEmpty(Dataset))
		Dataset = window.dataSetID;
	
	switch(typeof(Dataset))
	{
		case "string":
		{
			for(var i = 0; i < _array_dataset.length; i++) {
				if (_array_dataset[i].getID().toLowerCase() == Dataset.toLowerCase()) return _array_dataset[i];
			}
			
			return createDataset(Dataset);
			break;
		}
		case "object":
		{
			
			for(var i = 0; i < _array_dataset.length; i++) {
				if (_array_dataset[i].getID().toLowerCase() == Dataset.getID().toLowerCase()) return _array_dataset[i];
			}
			
			addDataset(Dataset);			
			return Dataset;
			
			break;		
		}
		default :
		{
			return null;
		}
	}
}

/**
 * 当前窗体中吃否存在数据集
 **/
function isExitDataset(Dataset) 
{
	if (Yacon.isEmpty(Dataset))
		Dataset = window.dataSetID;
	
	switch(typeof(Dataset))
	{
		case "string":
		{
			for(var i = 0; i < _array_dataset.length; i++) {
				if (_array_dataset[i].getID().toLowerCase() == Dataset.toLowerCase()) return true;
			}			
			return false;
			break;
		}
		case "object":{			
			for(var i = 0; i < _array_dataset.length; i++) {
				if (_array_dataset[i].getID().toLowerCase() == Dataset.getID().toLowerCase()) return true;
			}			
			return false;
			break;	
		}
		default :
		{
			return false;
		}
	}
}


function createDataset(datasetID)
{
	if (Yacon.isEmpty(datasetID))
		datasetID = window.dataSetID;
		
	var fdataSet = new Yacon.data.DataSet();
	
	if (Yacon.isString(datasetID))
	{
		fdataSet.setID(datasetID);
		addDataset(fdataSet);
		eval("window."+datasetID+" = fdataSet;");
	}
	return fdataSet;
}

/*添加数据集*/
function addDataset(Dataset) {	
	
	for(var i = 0; i < _array_dataset.length; i++)
	{
		if (_array_dataset[i].getID().toLowerCase() == Dataset.getID().toLowerCase())
		{	
			_array_dataset[i] = Dataset;
			return;
		}
	}	
	_array_dataset[_array_dataset.length] = Dataset;

}

/*添加数据集*/
function freeDataset(dataSet) {	
	
	dataSet.free();
	_array_dataset.remove(dataSet);
	
}
function addElement(element) 
{	
	for(var i = 0; i < _array_element.length; i++) 
	{
		if (_array_element[i] == element)
		{	
			_array_element[i] = element;
			return;
		}
	}	
	_array_element[_array_element.length] = element;	
}

function addNullElement(element) 
{	
	for(var i = 0; i < _array_nullElement.length; i++) 
	{
		if (_array_nullElement[i] == element)
		{	
			_array_nullElement[i] = element;
			return;
		}
	}	
	_array_nullElement[_array_nullElement.length] = element;	
}

function addMinLenElement(element) 
{	
	for(var i = 0; i < _array_minLengthElement.length; i++) 
	{
		if (_array_minLengthElement[i] == element)
		{	
			_array_minLengthElement[i] = element;
			return;
		}
	}	
	_array_minLengthElement[_array_minLengthElement.length] = element;	
}




function addResizeElement(element) 
{	
	for(var i = 0; i < _array_resizeElement.length; i++) 
	{
		if (_array_resizeElement[i] == element)
		{	
			_array_resizeElement[i] = element;
			return;
		}
	}	
	_array_resizeElement[_array_resizeElement.length] = element;	
}

function page_beforePost()
{
	_array_nullElement.clear();
	_array_minLengthElement.clear();	
	
	for ( var i = 0; i < _array_element.length; i++) 
	{
		var element = _array_element[i];		

		element_checkIsNull(element);
	}

	if (_array_nullElement.length > 0) 
	{
		alert("请补增带*输入项数据！");
		try 
		{
			_array_nullElement[0].focus();
		} catch (e) {}
		return false;
	} else if (_array_minLengthElement.length > 0) 
	{
		try 
		{
			var __field_Label = _array_minLengthElement[0].Control.fieldLabel ;
			var _alert_title = "" ;
			if(__field_Label!=null && __field_Label!=undefined && __field_Label!=""){
				_alert_title = "【"+__field_Label+"】" ;
			}
			alert(_alert_title+"值最小长度为:"+_array_minLengthElement[0].Control.minLength);
			_array_minLengthElement[0].focus();
		} catch (e) {}
		return false;
		
	}else
		return true;

}


function element_checkIsNull(element) 
{

	if (!Yacon.isTrue(element.getAttribute("ISNull"))) 
	{
		if (element.tagName.isEqual("select"))
		{
			if (element.selectedIndex <0 )
				addNullElement(element);		
			
		} else if (element.tagName.isEqual("input")) 
		{
			if (element.type.isEqual("text")|| element.type.isEqual("password"))
			{
				var value = element.value.trim();
				if (value.length == 0) {
					
					addNullElement(element);
				}
				if (element.Control&& !element.Control.fieldType.isEqual(Yacon.widget.FIELD_NUMBER) && element.Control.minLength>0)
				{
					if (value.length < element.Control.minLength) 
						addMinLenElement(element);
				}
	
			} else if (element.type.isEqual("checkbox")&& !element.checked) 
			{
				addNullElement(element);
			}
		} else if (element.tagName.isEqual("textarea")) {
			var value = element.value.trim();
			if (value.length == 0) {
				
				addNullElement(element);
			}
		}else if (element.Control && element.Control.ifCheckNull) {
			element.Control.ifCheckNull();
		}
	}

}

